package com.example.excel_db.excel;

import com.example.excel_db.entity.ExcelImportTask;
import com.example.excel_db.entity.ExcelTemplate;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * Excel数据处理器接口
 * 用于处理Excel数据的读写
 */
public interface ExcelDataHandler {

    /**
     * 读取Excel数据
     *
     * @param template 模板对象
     * @param file Excel文件
     * @param task 导入任务
     */
    void readExcel(ExcelTemplate template, MultipartFile file, ExcelImportTask task);

    /**
     * 写入Excel数据
     *
     * @param template 模板对象
     * @param dataList 数据列表
     * @return Excel文件字节数组
     */
    byte[] writeExcel(ExcelTemplate template, List<Map<String, Object>> dataList);

    /**
     * 处理Excel数据
     * 
     * @param template 模板对象
     * @param dataList 数据列表
     * @param task 导入任务
     * @return 处理结果
     */
    boolean processData(ExcelTemplate template, List<Map<String, Object>> dataList, ExcelImportTask task);
}